package cn.iocoder.yudao.module.system.api.roleaccess;

import cn.iocoder.yudao.framework.common.biz.system.roleaccess.dto.RoleAccessDTO;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.system.controller.admin.roleaccess.vo.RoleAccessRoleReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.roleaccess.RoleAccessDO;
import cn.iocoder.yudao.module.system.dal.redis.roleaccess.RoleAccessRedisDAO;
import cn.iocoder.yudao.module.system.service.roleaccess.RoleAccessService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

@Service
public class RoleAccessApiImpl implements RoleAccessApi {
    @Resource
    private RoleAccessRedisDAO roleAccessRedisDAO;
    @Resource
    private RoleAccessService roleAccessService;

    @Override
    public List<RoleAccessDTO> getRoleAccessListByUserId(Long userId) {
        return roleAccessRedisDAO.getList(userId);
    }

    @Override
    public List<RoleAccessDTO> getRoleAccessListByRoleId(Long roleId) {
        RoleAccessRoleReqVO roleAccessRoleReqVO = new RoleAccessRoleReqVO();
        roleAccessRoleReqVO.setRoleId(roleId);
        List<RoleAccessDO> roleAccessListByRoleId = roleAccessService.getRoleAccessListByRoleId(roleAccessRoleReqVO);
        return BeanUtils.toBean(roleAccessListByRoleId, RoleAccessDTO.class);
    }
}
